
export default {
	// 判断是否登录
	test(store, callback) {
		if (store.user) {
			if (callback) {
				callback();
			}
		} else {
			uni.$xl.router.push({
				name: 'login'
			});
		}
	},
	// 判断是否登录
	weChatLogin(store, callback) {
		// 未登录，则使用openId自动登录，如还没有注册，则存储openId
		if(!store.user && !store.openId){
			uni.login({
				provider: 'weixin',
				success: (loginRes) => {
					uni.$xl.apis.wxmaLogin({
						params: {
							appId: uni.$xl.global.WxMaAppId,
							code: loginRes.code
						}, 
						needToken: false
					}).then((res)=>{
						console.log(res);
						// 如果已经授权创建过用，则直接登录，没有则返回session
						if(res.msg == 'error'){
							store.setOpenId(res.openId)
						}else{
							//将后台返回的token和user存在store
							store.login(res)
						}
						if (callback) callback()
					}).catch((err)=>{
						uni.$xl.toast(err, 3000);
						// 请求数据失败
						console.log(err)
					})
				},
				fail: (res) => {
					uni.$xl.toast(err, 3000);
					console.log(res)
				}
			});
		}
	},
	// 判断是否登录
	testConfirm(store, callback) {
		if (store.user) {
			if (callback) {
				callback();
			}
		} else {
			uni.showModal({
				title: '提示',
				content: '您还没登录，请登录后再操作！',
				success: (res) => {
					if (res.confirm) {
						uni.$xl.router.push({
							name: 'login'
						});
					} else if (res.cancel) {
						console.log('用户点击取消');
					}
				}
			});
		}
	},
	// 返回操作，如果是登录注册修改密码等页面，以及vip，支付页面，则跳过返回
	back(){
		let step = 1;
		let pages = getCurrentPages();
		// pages.map(page => { console.log(page.route)})
		let currentPage = pages[pages.length-1];
		// 页面栈，应该倒着处理
		for (let i = pages.length-2; i>=0; i--) {
			// 若为登录注册修改密码等页面，以及vip，支付页面，则跳过返回
			let pattem = /^(pages\/user\/login\/\w*)|(pages\/user\/vip)|(pages\/common\/pay)$/;
			if(pattem.test(pages[i].route)){
				step++;
			}else if(currentPage.route == pages[i].route){
				// 若是当前页面，则继续跳过
				step++;
			}else{
				break;
			}
		}
		if (step >= pages.length) {
			uni.$xl.router.push({
				name: 'pages/user/index'
			});
		}
		// 页面刷新后，将无效，不能退回到刷新前的页面
		uni.navigateBack({
		    delta: step
		});
	}
}